#include "ClaveString.h"

ClaveString::ClaveString(const string &valor) {

	this->valorString = valor;
}

ClaveString::~ClaveString() {

}

bool ClaveString::operator==(const DatoClave& otro)const {

	const ClaveString* clave = dynamic_cast<const ClaveString*>(&otro);

	if (clave == NULL) {
		return false;
	}

	return (this->valorString == clave->valorString);
}

bool ClaveString::operator<(const DatoClave& otro)const {

	const ClaveString* clave = dynamic_cast<const ClaveString*>(&otro);

	if (clave == NULL) {
		return false;
	}

	return (this->valorString < clave->valorString);

}

bool ClaveString::operator>(const DatoClave& otro)const {

	const ClaveString* clave = dynamic_cast<const ClaveString*>(&otro);

	if (clave == NULL) {
		return false;
	}

	return (this->valorString > clave->valorString);
}

bool ClaveString::operator<=(const DatoClave& otro)const {

	const ClaveString* clave = dynamic_cast<const ClaveString*>(&otro);

	if (clave == NULL) {
		return false;
	}

	return (this->valorString <= clave->valorString);
}

Bytes ClaveString::serializarse() {

	return Bytes(this->valorString);
}

bool ClaveString::hidratarse(const Bytes& dato) {

	this->valorString = dato.toString();

	return true;
}

std::string ClaveString::toString()const{
	return valorString;
}

DatoClave* ClaveString::getCopia() {
	return new ClaveString(this->valorString);
}
